import { registerStartNode } from '@/credit/components/flow/element/node/start'
import { registerEndNode } from '@/credit/components/flow/element/node/end'
import { registerUserNode } from '@/credit/components/flow/element/node/user'
import { registerGatewayNode } from '@/credit/components/flow/element/node/gateway'
import { registerPolylineEdge } from '@/credit/components/flow/element/edge/polyline'
import { theme } from '@/credit/components/flow/element/theme'

const FlowElement = {
  name: 'flow-element',
  install(lf) {
    lf.setTheme(theme)
    lf.register('flow:start', registerStartNode)
    lf.register('flow:end', registerEndNode)
    lf.register('flow:user', registerUserNode)
    lf.register('flow:gateway', registerGatewayNode)
    lf.register('flow:polyline', registerPolylineEdge)
  },
}

export default FlowElement
